Modern control devices of motor vehicles have at least one multicore processor. Multicore processors include a plurality (at least two) of processor cores. A processor core includes an arithmetic-logical unit (ALU) that is the actual electronic computing mechanism for carrying out tasks, programs, computational commands, etc. In addition, a processor core includes a local memory. Such a local memory is fashioned in particular as a register set made up of one or more registers. Control devices also include a global memory. This global memory can include for example flash, NOR flash, or RAM units. Peripheral modules, such as sensors, can also be part of this global memory.
In control devices of motor vehicles, processes are permanently executed by the individual processor cores. In order to execute tasks or processes, the processor cores require in particular a corresponding program code and, if necessary, input data. Such program codes can be stored for example in flash and/or NOR flash memories of the global memory. Input data can be for example acquired measurement data from peripheral modules, such as engine rotational speed, temperatures, pressures, etc.
In order to enable execution of a task or process, a processor core first loads the corresponding data, in particular program code and required input data, into its local memory, because a processor core can access its local memory with a significantly shorter (and more predictable) access time than it can the global memory. A processor core can usually access its local memory within one clock pulse, whereas access to the global memory usually requires between three and ten clock pulses.
The control device and processes running thereon must satisfy particular safety requirements, described for example in ISO standard ISO 26262. Inter alia, a control device has to be real-time-capable. That is, it must be guaranteed that a process is successfully executed within a specified maximum execution time. However, this execution time is decisively determined by the local memory units. Depending on which program code has previously been executed, or whether for example interruptions have occurred, more or less fitting data are situated in the local memory. A maximum execution time can therefore be determined only with difficulty, and for this reason large safety margins are necessary. As a result, due to these planned “safety buffers,” the usable computing power of each processor core is reduced.
If two processor cores access the same resources simultaneously, in particular in the global memory, an access collision may occur. It is true that such access collisions occur infrequently, and barely reduce the average computing power of the multicore processor. In order to make it possible to ensure real-time capability, however, this access collision has to be taken into account with a maximum duration (“worst-case”). However, this is often possible only with great difficulty, or not at all. Instead, safety margins can be further increased, which again has a negative effect on the usable computing power.
It is therefore desirable to provide an improved control device for a motor vehicle having a multicore processor. In particular, a real-time capability of the control device is to be ensured, and the usable computing power increased, in a simple manner.